perm filename HOT[AP,SYS]5 blob
sn#100366 filedate 1974-05-08 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00004 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 Definitions and storage allocations.
C00004 00003 Main program loop.
C00007 00004 Check to see if a message file exists. If so, type it out and exit.
C00011 ENDMK
C⊗;
;Definitions and storage allocations.
TITLE HOT
ARPA←←-1 ;SET TO NON-ZERO TO INHIBIT NETWORK USE OF HOT
A←5 ;temporary AC
CNT←6 ;timer for trying to contact FILER to request hot line
B←10
C←11
CHAR←12
P←17 ;stack pointer
FF←14
PDLEN←10
FILER: SIXBIT /[-AP-]/ ;addressee of the letter requesting the hot line
OUTLTR ;address of the 32 word letter to be sent to FILER
OUTLTR: SIXBIT /HOT/ ;signature of sender of letter
INLTR: BLOCK =32 ;block for receiving a hot line letter from FILER
ASCIZ /
?? oops !!
/ ;if whole letter is text, this will terminate the OUTSTR
MESSF: SIXBIT /HTMESS/ ;file for message to users of HOT when down
BLOCK 3
TBUF: BLOCK 3 ;buffer header for tty output
MBUF: BLOCK 3 ;buffer header for message file input
PDLIST: BLOCK PDLEN
;Main program loop.
HOT1: RELEAS 17,
CALLI A,30 ;PJOB
MOVEM A,OUTLTR+1 ;put job number into letter requesting hot line
MOVEI CNT,=3 ;this is how many times we try to contact [-AP-]
RQST: MAIL 5,FILER ;send letter to [-AP-]
JRST PAUSE ;can't send letter now; wait and try again
JRST SUCCES ;letter successfully sent. wait for letter from FILER
GIVEUP: MOVEI A,[SIXBIT /DSK HOT DMP /↔0↔SIXBIT / AP ME/]
SWAP A, ;TRY TO RUN HOT.DMP[AP,ME] (NEW AP SYSTEM)
OUTSTR [ASCIZ /
Cannot run hot line now--sorry.
/]
CALLI 12 ;EXIT
PAUSE: SOJLE CNT,GIVEUP ;if have tried unsuccessfully for a long time, give up
MOVEI A,1 ;sleep a second and then try again
SLEEP A,
JRST RQST
SUCCES: OUTSTR [ASCIZ /
...Associated Press news...
/]
JRST GETLTR
PRINT: OUTSTR INLTR ;type out latest letter
GETLTR: WRCV INLTR ;get a letter from [-AP-],
MOVE A,INLTR ;load first word of letter
AOJN A,PRINT ;-1 in first word means FILER is dying, will restart
DYING: OUTSTR [ASCIZ /
...one moment please.../]
MOVEI A,=20 ;this is how long we give FILER to start up again
CALLI A,31 ;SLEEP
JRST HOT
;Check to see if a message file exists. If so, type it out and exit.
HOT: MOVE P,[IOWD PDLEN,PDLIST]
IFN ARPA,<
SETO A,
GETLIN A ;GET TTY CHARACTERISTICS
TLNN A,420000 ;Running from a display is OK
TLNN A,4000 ;IS THIS GUY ON A PTY?
JRST NOARPA ;NO
SETO A,
SETPRV A,
JUMPN A,NOARPA
OUTSTR [ASCIZ\
For the time being, the AP news is not available over the network
because the Associated Press is concerned about access to the news.
We hope to settle this situation as soon as possible.
\]
EXIT
NOARPA:
>;END IFN ARPA
INIT 17,10 ;type out the file HTMESS if it exists
SIXBIT /DSK/
MBUF
JRST ERROR ; ;CANT INIT THE DSK
MOVE A,[SIXBIT/ APSYS/]
MOVEM A,MESSF+3
LOOKUP 17,MESSF ;is there a message file to be typed out?
JRST HOT1 ;no
OUTSTR [ASCIZ/
/]
INIT 13,10
SIXBIT /TTY/
XWD TBUF,0
JRST ERROR ; ;CANT INIT THE TTY
UOUTBF 13,[2↔201]
PUSHJ P,GMSWD ;get first word of file
CAME A,[ASCII/COMME/];is it a TV file?
JRST SOSMES ;no
PUSHJ P,PMSWD
PUSHJ P,GMSWD
CAME A,[ASCII/NT ⊗ /]
JRST SOSMES ;not TV file
GETSTS 13,B
TRO B,20 ;INHIBIT SYSTEM WORD COUNT
SETSTS 13,(B)
FINDFF: PUSHJ P,GMSRC
LDB CHAR,[POINT 7,A,6];get first char of record
CAIE CHAR,FF ;FF marks end of TV directory page
JRST FINDFF
TLZ A,774000 ;zero out the FF
MOVEM A,@MBUF+1
NXREC: HRLZ B,MBUF
HRR B,TBUF
AOBJN B,.+1
MOVEI C,(B)
BLT B,200(C) ;move from DSK buffer to TTY buffer
HRRZS (C) ;zero out left half of word count word
OUTPUT 13, ;write out TTY buffer
PUSHJ P,GMSRC ;get next record of file
JRST NXREC
SOSMES: TRNN A,1 ;is this word an SOS line number?
JRST SOS1 ;no
PUSHJ P,GMSWD ;yes. ignore it and get next word from file
TLZ A,774000 ;zero out the tab following the line number
SOS1: PUSHJ P,PMSWD ;write out this word
PUSHJ P,GMSWD ;get next word from file
JRST SOSMES
PMSWD: SOSG TBUF+2 ;put word into TTY buffer
OUTPUT 13,
IDPB A,TBUF+1
POPJ P,
GMSWD: SOSG MBUF+2
GMSRC: IN 17, ;get next record (buffer) from message file
JRST [ILDB A,MBUF+1 ;get word from buffer
POPJ P,]
JRST HOT1
ERROR: OUTSTR [ASCIZ/
Impossible error occurred.
/]
CALLI 12
END HOT